import axios from 'axios';
import router from '@/router';
import Cookies from 'js-cookie';

const request = axios.create({
    // 注意：这里全局统一加上了 '/api' 前缀
    // 也就是意味着所有的请求路径都会默认添加这个前缀，那写接口的时候就不用写了
    baseURL:'http://localhost:8081/api',
    timeout:50000
})

//  request 拦截器
// 可以自请求发送前对请求做一些处理
// 比如同意添加token，对请求参数加密等
request.interceptors.request.use(config =>{
    config.headers['Content-Type'] = 'application/json;charset=utf-8';

    const token = Cookies.get('user')// 获取cookie

    if(token){
        console.log(JSON.parse(token).id)
        config.headers['token'] = JSON.parse(token).id
    }
    //config.headers['token'] = user.token// 设置请求头

    
    return config
},error =>{
    return Promise.reject(error)
});


// response 拦截器
// 可以在接口响应后统一处理结果
request.interceptors.response.use(response=>{
    let res = response.data;
    // 兼容服务器返回的字符串数据
    if(typeof res === 'string'){
        res = res ? JSON.parse(res) :res
    }

    if(res.code=='401'){
        router.push('/userlogin')
    }
    return res;
},
error=>{
    console.log('error: '+error)
    return Promise.reject(error)
})

export default request